package com.ml.mall.service;

import com.ml.mall.bean.page.Page;
import com.ml.mall.bean.req.BaseDateRangeReq;
import com.ml.mall.bean.req.admin.variant.VariantQueryOneReq;
import com.ml.mall.bean.req.purchase.PurchaseSupplierQueryPageReq;
import com.ml.mall.bean.req.purchase.PurchaseVariantQueryPageReq;
import com.ml.mall.bean.res.admin.PurchaseQueryOneRes;
import com.ml.mall.bean.res.admin.variant.VariantQueryOneRes;
import com.ml.mall.bean.res.admin.variant.VariantQueryTopRes;
import com.ml.mall.bean.res.purchase.PurchaseOverviewRes;
import com.ml.mall.bean.res.purchase.PurchaseSpentQueryReportRes;
import com.ml.mall.bean.res.purchase.PurchaseSupplierQueryReportRes;
import com.ml.mall.bean.res.purchase.PurchaseVariantQueryPageRes;
import com.ml.mall.bean.res.purchase.vo.PurchaseSupplierVO;

import java.util.List;

/**
 * Created by kyyang on 2021/7/4 12:24
 */
public interface AnalyticsPurchaseService {
    /**
     * @description: 买家查询消费报告
     * @author kyyang
     * @date 2021/7/4 12:30
     * @version 1.0
     */
    PurchaseOverviewRes getPurchaseOverview(BaseDateRangeReq req) throws Exception;

    /**
     * @description: 买家查询消费报告
     * @author kyyang
     * @date 2021/7/4 13:50
     * @version 1.0
     */
    PurchaseSpentQueryReportRes getPurchaseSpentQueryReport(BaseDateRangeReq req) throws Exception;

    /**
     * @description: 查询消费前10的供应商；没有全部0；缺少补0
     * @author kyyang
     * @date 2021/7/4 14:34
     * @version 1.0
     */
    List<PurchaseSupplierQueryReportRes> getPurchaseSupplierQueryReport(BaseDateRangeReq req)throws Exception;

    /**
     * @description: 消费订单的卖家 分页查询
     * @author kyyang
     * @date 2021/7/4 14:48
     * @version 1.0
     */
    Page<PurchaseSupplierVO> getPurchaseSupplierQueryPage(PurchaseSupplierQueryPageReq req) throws Exception;

    /**
     * @description: 分页查询买家消费产品
     * @author kyyang
     * @date 2021/7/4 15:04
     * @version 1.0
     */
    Page<PurchaseVariantQueryPageRes> purchaseVariantQueryPage(PurchaseVariantQueryPageReq req)throws Exception;

    /**
     * @description: 查询买家商品变体销售报告topN
     * @author kyyang
     * @date 2021/8/3 21:36
     * @version 1.0
     */
    List<VariantQueryTopRes> purchaseVariantQueryTop(BaseDateRangeReq req)throws Exception;

    /**
     * @description: 买家查询某一个变体的时间范围内的销售报告
     * @author kyyang
     * @date 2021/8/3 21:39
     * @version 1.0
     */
    VariantQueryOneRes purchaseVariantQueryOne(VariantQueryOneReq req) throws Exception;

    /**
     * @description 卖家查询订单报告
     * @throws Exception
     */
    PurchaseQueryOneRes purchaseOrderQueryReport(BaseDateRangeReq reqt, Long supplierId) throws Exception;
}
